package clue

import (
	"context"
	clueDto "git.mycaigou.com/gfyx/micro-gfyx-api/infrastructure/dto/clue"
)

type ClueServiceIface interface {
	// AddClueSourceFollow 增加线索跟进记录
	AddClueSourceFollow(ctx context.Context, request *clueDto.AddClueSourceFollowRequest) (*clueDto.AddClueSourceFollowResponse, error)
	GetClueList(ctx context.Context, request *clueDto.GetClueListRequest) (*clueDto.GetClueListResponse, error)
	SaveClue(ctx context.Context, request *clueDto.SaveClueRequest) (*clueDto.SaveClueResponse, error)
	DeleteClue(ctx context.Context, id int64) (*clueDto.DeleteClueResponse, error)
	GetClueDetailById(ctx context.Context, id int64) (*clueDto.GetClueDetailByIdResponse, error)
	ExportClueList(ctx context.Context, request *clueDto.ExportClueListRequest) (*clueDto.ExportClueListResponse, error)

	SaveClueTracker(ctx context.Context, request *clueDto.SaveClueTrackerRequest) (*clueDto.SaveClueTrackerResponse, error)
	GetClueTrackerList(ctx context.Context, request *clueDto.GetClueTrackerListRequest) (*clueDto.GetClueTrackerListResponse, error)
	DeleteClueTracker(ctx context.Context, request *clueDto.DeleteClueTrackerRequest) (*clueDto.DeleteClueTrackerResponse, error)
	ReplaceChargeUser(ctx context.Context, request *clueDto.ReplaceChargeUserRequest) (*clueDto.ReplaceChargeUserResponse, error)
	GetInChargeUserList(ctx context.Context) (*clueDto.GetInChargeUserListResponse, error)

	SaveClueContact(ctx context.Context, request *clueDto.SaveClueContactRequest) (*clueDto.SaveClueContactResponse, error)
	GetClueContactList(ctx context.Context, request *clueDto.GetClueContactListRequest) (*clueDto.GetClueContactListResponse, error)
	DeleteClueContact(ctx context.Context, request *clueDto.DeleteClueContactRequest) (*clueDto.DeleteClueContactResponse, error)
	GetClueContactDetailById(ctx context.Context, request *clueDto.GetClueContactDetailByIdRequest) (*clueDto.GetClueContactDetailByIdResponse, error)

	AddClueFollowRecord(ctx context.Context, request *clueDto.AddClueFollowRecordRequest) (*clueDto.AddClueFollowRecordResponse, error)
	GetClueFollowRecordList(ctx context.Context, request *clueDto.GetClueFollowRecordListRequest) (*clueDto.GetClueFollowRecordListResponse, error)
}
